import ACCESS_ENUM from "@/access/accessEnum";

/**
 * 检查权限(判断当前用户是否具有某个权限）
 * @param loginUser 当前登录的用户
 * @param needAccess 需要具有的权限
 * @return boolean 有无权限
 */
const checkAccess = (
  loginUser: API.LoginUserVO,
  needAccess = ACCESS_ENUM.NOT_LOGIN,
) => {
  // 获取当前的登录用户有什么权限(如果没登录，默认无权限）
  const loginUserAccess = loginUser?.userRole ?? ACCESS_ENUM.NOT_LOGIN;
  // 如果当前页面不需要任何权限
  if (needAccess === ACCESS_ENUM.NOT_LOGIN) {
    return true;
  }
  // 如果页面需要登录
  if (needAccess === ACCESS_ENUM.USER) {
    // 如果用户未登录
    if (loginUserAccess === ACCESS_ENUM.NOT_LOGIN) {
      return false;
    }
  }
  // 如果需要管理员权限
  if (needAccess === ACCESS_ENUM.ADMIN) {
    if (loginUserAccess !== ACCESS_ENUM.ADMIN) {
      return false;
    }
  }
  return true;
};
export default checkAccess;
